// Copyright 2019 Aporeto Inc.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//     http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package versions

// This code is autogenerated by apolibver. Do not edit manually.

import (
	"encoding/json"
	"fmt"

	"go.uber.org/zap/zapcore"
)

// Versions of the current project.
var (
	ProjectVersion = "master"
	ProjectSha     = "6f8c7be6698cfa85da84aa8dcc1e4c2815a9c8c1"
)

// Versions of the various libraries used by the project.
var ()

// Fields returns a ready to dump zap.Fields containing all the versions used.
func Fields() []zapcore.Field {

	return []zapcore.Field{}
}

// Map returns the version information as a map.
func Map() map[string]any {

	return map[string]any{
		"version": ProjectVersion,
		"sha":     ProjectSha[0:7],
		"libs":    map[string]string{},
	}
}

// ToString returns the string version of versions
func ToString(prefix string) string {

	buffer := fmt.Sprintf("%s%32s : %s\n", prefix, "ProjectVersion", ProjectVersion)
	buffer += fmt.Sprintf("%s%32s : %s\n", prefix, "ProjectSha", ProjectSha[0:7])
	buffer += fmt.Sprintf("%s%32s : %s\n", prefix, "Libraries", "")
	return buffer
}

// JSON returns the version as a ready to send json data.
func JSON() ([]byte, error) {

	return json.MarshalIndent(Map(), "", "    ")
}
